home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 089 - Misc Stuff - PD.dsk / MULTIPLY DEMO.S < prev    next >
Text File  |  2019-02-17  |  3KB  |  158 lines

  1.           AST 32
  2. *
  3. * >>> MULTIPLY DEMO <<<
  4. * WRITTEN BY
  5. *
  6. * DAVID B GARSON
  7. *
  8.           AST 32
  9.  
  10. TEMP      EQU $03
  11. SIGN      EQU $2F
  12. ACL       EQU $50
  13. ACH       EQU $51
  14. XTNDL     EQU $52
  15. XTNDH     EQU $53
  16. AUXL      EQU $54
  17. AUXH      EQU $55
  18. M1        EQU $3E
  19. M2        EQU $3C
  20.  
  21. MUL       EQU $303
  22. YVEC      EQU $3F8
  23. HOME      EQU $FC58
  24. CAR       EQU $FD8E
  25. PRTB      EQU $FDDA
  26. COUT      EQU $FDED
  27. MON       EQU $FF69
  28.  
  29.           ORG $803
  30.  
  31.  
  32.  
  33. * SET CTRL Y VECTOR
  34.  
  35.           LDA #$4C
  36.           STA YVEC
  37.           LDA #<STAR
  38.           STA YVEC+1
  39.           LDA #>STAR
  40.           STA YVEC+2
  41.  
  42.  
  43.           JMP INTRO
  44.  
  45.  
  46.  
  47. * THE PURPOSE OF THIS DEMO IS
  48. * TO SHOW THE USE OF THE
  49. * MULTIPLY ROUTINE IN THE
  50. * APPLE'S MONITOR
  51.  
  52. * INPUTTING DATA TO MULTIPLY
  53. * IS DONE THROUGH THE USE OF
  54. * CONTROL "Y" AND ZERO PAGE
  55. * LOCATIONS $3C-$3F. THESE
  56. * LOCATIONS WILL CONTAIN THE
  57. * LAST TWO NUMBERS TYPED IN.
  58.  
  59. * TO ACTUALLY USE THE ROUTINE,
  60. * JUST TYPE XXXX.YYYY (CTRL Y),
  61. * WHERE XXXX AND YYYY EQUAL ANY
  62. * VALID HEX NUMBER FROM 0-FFFF.
  63.  
  64. * $50,51 ARE LOCNS OF FIRST NBR
  65. * $54,55 ARE LOCNS OF SECOND NBR
  66.  
  67. * REMEMBER TO SET UP LOW ORDER
  68. * THEN HIGH ORDER IN EACH CASE,
  69. * THEN CALL $FB63 (OLD MONITOR).
  70.  
  71. * LOCNS $50 TO 53 WILL CONTAIN
  72. * RESULTS, LOW TO HIGH.
  73.  
  74. * IMPORTANT! REMEMBER TO ZERO
  75. * LOCATIONS $52,53 BEFORE
  76. * CALLING "MUL".
  77.  
  78.  
  79. * HERE COMES THE PROGRAM
  80.  
  81. STAR      LDA #$00       ;THESE LOCNS MUST
  82.           STA XTNDL      ;ZERO BEFORE
  83.           STA XTNDH      ;CALLING "MUL"
  84.  
  85.           LDA M1
  86.           STA AUXL
  87.           LDA M1+1
  88.           STA AUXH
  89.           LDA M2
  90.           STA ACL
  91.           LDA M2+1
  92.           STA ACH
  93.  
  94. * THE VARIABLES HAVE NOW BEEN MOVED TO THEIR
  95. * PROPER POSITION FOR USE BY THE MULTIPLY ROUTINE
  96.  
  97.           JSR MUL        ;THIS IS THE
  98. * ROUTINE THAT DOES ALL THE WORK
  99.  
  100. * NOW DISPLAY THE RESULTS
  101.  
  102.           LDX #$03
  103. DISP      LDA ACL,X
  104.           JSR PRTB
  105.           DEX
  106.           BPL DISP
  107.           JSR CAR
  108.           JMP MON
  109.  
  110.  
  111. * MESSAGE OUTPUT BY ANDY HERTZFELD
  112.  
  113. MSGOUT    PLA
  114.           STA TEMP
  115.           PLA
  116.           STA TEMP+1
  117.           LDY #0
  118. LOOP      INC TEMP
  119.           BNE SKIPADD
  120.           INC TEMP+1
  121. SKIPADD   LDA (TEMP),Y
  122.           BEQ MSGRTS
  123.           JSR COUT
  124.           JMP LOOP
  125. MSGRTS    LDA TEMP+1
  126.           PHA
  127.           LDA TEMP
  128.           PHA
  129.           RTS
  130.  
  131.  
  132.  
  133.  
  134.  
  135. INTRO     JSR HOME
  136.           JSR MSGOUT
  137.           HEX 8D
  138.           ASC "HOW TO USE THE MULTIPLY ROUTINES ON"
  139.           HEX 8D
  140.           ASC "THIS DISKETTE: THE MULTIPLY/DIVIDE"
  141.           HEX 8D
  142.           ASC "ROUTINES MUST BE IN MEMORY."
  143.           HEX 8D8D
  144.           ASC "ENTER THE FIRST NUMBER, A PERIOD, THE"
  145.           HEX 8D
  146.           ASC "SECOND NUMBER, A CTRL Y."
  147.           HEX 8D8D
  148.           ASC "DATA SHOULD BE ENTERED IN THE FORM"
  149.           HEX 8D
  150.           ASC "XXXX.YYYY (CTRL Y), WHERE XXXX AND"
  151.           HEX 8D
  152.           ASC "YYYY ARE HEX NUMBERS."
  153.           HEX 8D8D
  154.           ASC "RESULTS ARE IN 50.53 AND WILL BE PRINTED"
  155.           ASC "BY THIS DEMO PROGRAM."
  156.           HEX 8D00
  157.           JMP MON
  158.